package com.reactor.flux;

import java.time.Duration;
import java.time.temporal.ChronoUnit;

import reactor.core.publisher.Flux;

public class FluxDemo {

	/**Flux 相当于一个 RxJava Observable，能够发出 0~N 个数据项，然后（可选地）completing 或 erroring。处理多个数据项作为stream。
小结
Mono和Flux都是实现Publisher接口的抽象类，一个相当于Optional，一个相当于有0..N的stream。两个都是spring 5 reactive编程的重要基础概念。
	 * @param args
	 */
	public static void main(String[] args) {
		Flux.just("Hello", "World").subscribe(System.out::println);
		Flux.just(5, 10).subscribe(System.out::println);
		Flux.fromArray(new Integer[] {1, 2, 3}).subscribe(System.out::println);
		Flux.empty().subscribe(System.out::println);
		Flux.range(1, 10).subscribe(System.out::println);
		Flux.interval(Duration.of(1, ChronoUnit.SECONDS)).subscribe(System.out::println);
		try {
			Thread.sleep(20000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

}
